<HTML>
<BODY>
<h1>Results of Single and Dual Processor Colt Matrix Benchmark</h1>
<p>using the <a href="../package-summary.html#Overview">matrix package</a>. For 
  more explanations, on how to interpret and run benchmarks on your own boxes, 
  see the documentation of class <a href="../bench/BenchmarkMatrix.html">BenchmarkMatrix</a>.</p>
<table border="1" cellspacing="0">
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966" width="77">OS</td>
    <td bgcolor="33CC66" width="509">Linux</td>
    <td bgcolor="33CC66" width="32">Your config.</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966" width="77">OS Config.</td>
    <td bgcolor="#31CF63" width="509">Red Hat 6.1, Kernel 2.2.12-20smp</td>
    <td bgcolor="#31CF63" width="32">&nbsp;</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966" width="77">HW</td>
    <td bgcolor="#31CF63" width="509">2 x PentiumIII@600 MHz, 512 MB, 32 KB L1, 
      2x256 KB L2 (lxplus012.cern.ch) </td>
    <td bgcolor="#31CF63" width="32">&nbsp;</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966" width="77">VM</td>
    <td bgcolor="#31CF63" width="509">IBMJDK1.3, Classic VM, build cxdev-20000502, 
      jitc</td>
    <td bgcolor="#31CF63" width="32">&nbsp;</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FFCFCE" width="77">Performance</td>
    <td bgcolor="FFCCCC" width="509"><a href="allColt1.0.1ibm1.3LxPIII.txt">here</a></td>
    <td bgcolor="FFCCCC" width="32">&nbsp;</td>
  </tr>
</table>
<p>Here the result for the matrix matrix multiply with <a href="dgemmColt1.0.1ibm1.3LxPIII_1.txt">one 
  thread</a> and the parallel version with <a href="dgemmColt1.0.1ibm1.3LxPIII_2.txt">two 
  threads</a>.</p>
<p>Each operation is timed varying the following parameters </p>
<ul>
  <li><i>Implementation type</i> - <tt>DenseDoubleMatrix2D, SparseDoubleMatrix2D</tt></li>
  <li><i>Density</i> - the fraction of cells in non-zero state (randomly assigned)</li>
  <li><i>Size</i> - all matrices are square with the given number of rows and 
    columns</li>
  <li><i>Computer Architecture, Operating System and Virtual Machine</i></li>
</ul>
<p>Methodology</p>
<ul>
  <li>Measurements given in <i>Mops/sec</i> (10^6 ops/sec) and <i>Mflops/sec</i> 
    (10^6 flops/sec). <tt>A[i,j]=B[k,l]</tt> counts as <tt>1</tt> op whereas <tt>sum 
    += A[i,j]*B[k,l]</tt> counts as <tt>2</tt> flops. For sparse implementations 
    Mops and Mflops are expressed in relation to the dense base line implementation: 
    If an operation on a dense matrix executes at 10 Mflops/sec but takes 2 times 
    longer to complete on a sparse matrix, the sparse matrix is said to have a 
    performance of 10/2=5 Mflops.<br>
  </li>
  <li>All machines are empty.<br>
  </li>
  <li>No explicit invocation of garbage collection within and between runs (there 
    is not much to collect).<br>
  </li>
  <li>Each operation is repeated for at least 2 seconds (see command line); the 
    mean of all repetitions is reported.<br>
  </li>
  <li>Some parameter combinations that do not occur in practice (but would take 
    lots of memory and time) are not benchmarked; they appear in the tables as 
    NaN's (this is <i>not</i> an error). For example, it is possible to multiply 
    two matrices of type <tt>SparseDoubleMatrix2D</tt> which are in fact very 
    dense. However, it doesn't make a lot of sense; one would take <tt>DenseDoubleMatrix2D</tt> 
    for such purposes. <br>
  </li>
</ul>
<p>Command line: <tt>java -Xmx400m cern.colt.matrix.bench.BenchmarkMatrix -file 
  all </tt></p>
<p>Below some results from an old version 1.0Beta4-1. Of historic interest only.</p>
<table border="1" cellspacing="0">
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966">OS</td>
    <td bgcolor="33CC66">Linux</td>
    <td bgcolor="33CC66">Linux</td>
    <td bgcolor="33CC66">Linux</td>
    <td bgcolor="33CC66">Solaris</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966">OS Config.</td>
    <td bgcolor="#31CF63">Red Hat 6.1, Kernel 2.2.12-20</td>
    <td bgcolor="#31CF63">Red Hat 6.1, Kernel 2.2.12-20</td>
    <td bgcolor="#31CF63">Red Hat 6.1, Kernel 2.2.12-20</td>
    <td bgcolor="#31CF63">Solaris 2.6 (aka SunOS 5.6) </td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966">HW</td>
    <td bgcolor="#31CF63">1 x PentiumIII@600 MHz, 128 MB, 32 KB L1, 256 KB L2 
      (linuxosdev.cern.ch) </td>
    <td bgcolor="#31CF63">1 x PentiumIII@600 MHz, 128 MB, 32 KB L1, 256 KB L2 
      (linuxosdev.cern.ch) </td>
    <td bgcolor="#31CF63">1 x PentiumIII@600 MHz, 128 MB, 32 KB L1, 256 KB L2 
      (linuxosdev.cern.ch) </td>
    <td bgcolor="#31CF63">Sun 450, 2 x Ultrasparc-II@400 MHz (1 CPU used), 256 
      MB, 32 KB L1, 4 MB L2 (shd70.cern.ch) </td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FF9966">VM</td>
    <td bgcolor="#31CF63">IBMJDK1.1.8 </td>
    <td bgcolor="#31CF63">BlackdownJDK1.2.2RC3, Classic VM, native threads, sunwjit 
    </td>
    <td bgcolor="#31CF63">SunInpriseJDK1.2.2RC1, Classic VM (build 1.2.2-I, green 
      threads, javacomp)</td>
    <td bgcolor="#31CF63">SunJDK1.2.2, Classic VM</td>
  </tr>
  <tr align="left" valign="top"> 
    <td bgcolor="#FFCFCE">Performance</td>
    <td bgcolor="FFCCCC"><a href="perfIBM118Linux.txt">here</a></td>
    <td bgcolor="FFCCCC"><a href="perfBlackdown122RC3.txt">here</a></td>
    <td bgcolor="FFCCCC"><a href="perfSunInprise122RC1.txt">here</a></td>
    <td bgcolor="FFCCCC"><a href="perfSun122classicSun450.txt">here</a></td>
  </tr>
</table>
<p></p>
<p>&nbsp; </p>
</BODY>
</HTML>